# coding:utf-8
'''
Created on 2015-8-20

@author: Administrator
'''
'''
'''
import xml.etree.cElementTree as ET
import xml.dom.minidom as xx
import os, xlwt, datetime
import xlrd

# data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")


workbook = xlwt.Workbook(encoding="utf-8")
#
booksheet = workbook.add_sheet(u'Sheet_1')
booksheet.col(0).width = 5120
booksheet.col(1).width = 5120
booksheet.col(2).width = 5120
booksheet.col(3).width = 5120
booksheet.col(4).width = 5120
booksheet.col(5).width = 5120

dom = xx.parse(r'D:\data\DHCCZ\task\testlink_to_excel\工作日-同步查询-预警功能无效.version1.testcase.xml')
root = dom.documentElement
row = 1
col = 1

borders = xlwt.Borders()
borders.left = 1
borders.right = 1
borders.top = 1
borders.bottom = 1

style = xlwt.easyxf('align: wrap on,vert centre, horiz center')  # 自动换行、水平居中、垂直居中
# 设置标题的格式，字体方宋、加粗、背景色：菊黄
# 测试项的标题

title = xlwt.easyxf(
    u'font:name 仿宋,height 240 ,colour_index black, bold on, italic off; align: wrap on, vert centre, horiz center;pattern: pattern solid, fore_colour light_orange;')
item = '测试项'
Subitem = '测试分项'
CaseTitle = '测试用例标题'
Condition = '预置条件'
actions = '操作步骤'
Result = '预期结果'
booksheet.write(0, 0, item, title)
booksheet.write(0, 1, Subitem, title)
booksheet.write(0, 2, CaseTitle, title)
booksheet.write(0, 3, Condition, title)
booksheet.write(0, 4, actions, title)
booksheet.write(0, 5, Result, title)
# 冻结首行
booksheet.panes_frozen = True
booksheet.horz_split_pos = 1

# 一级目录
for i in root.childNodes:
    testsuite = i.getAttribute('name').strip()
    print(testsuite)
    # print testsuite
    '''
    写测试项
    '''
    print
    "row is :", row
    booksheet.write(row, col, testsuite, style)

    # 二级目录
    for dd in i.childNodes:
        print("       %s" % dd.getAttribute('name'))
        testsuite2 = dd.getAttribute('name')
        if not dd.getElementsByTagName('testcase'):
            print("Testcase is %s" % testsuite2)
            row = row + 1
            booksheet.write(row, 2, testsuite2, style)  # 写测试分项

        row = row + 1

        booksheet.write(row, 1, testsuite2, style)
        itemlist = dd.getElementsByTagName('testcase')

        for subb in itemlist:
            # print "                 %s" %  subb.getAttribute('name')
            testcase = subb.getAttribute('name')

            row = row + 1
            booksheet.write(row, 2, testcase, style)

            ilist = subb.getElementsByTagName('preconditions')
            for ii in ilist:
                preconditions = ii.firstChild.data.replace("<br />", " ")
                col = col + 1
                booksheet.write(row, 3, preconditions, style)
            steplist = subb.getElementsByTagName('actions')
            # print steplist
            for step in steplist:
                actions = step.firstChild.data.replace("<br />", " ")
                col = col + 1
                booksheet.write(row, 4, actions, style)
            # print "测试步骤：",steplist[0].firstChild.data.replace("<br />"," ")
            expectlist = subb.getElementsByTagName('expectedresults')

            for expect in expectlist:
                result = expect.childNodes[0].nodeValue.replace("<br />", "")
                booksheet.write(row, 5, result, style)

    row = row + 1

workbook.save('demo.xls')